#ifndef CDIR_H
#define CDIR_H
#include <my_header.h>
#include <mysql/mysql.h>
#include "stack.h"

// 全部 return 0 成功，return 非0 失败
// 查询数据库
int query_database(char *sql, MYSQL *mysql, MYSQL_ROW *rowArr);
// 用户初始化，如果用户不存在，则创建用户，并创建根目录
int user_init(char *username, MYSQL *mysql, my_stack *st);
// 获取当前目录 dir_path
int get_dire_path(MYSQL *mysql, my_stack *st, char *cur_path);
// 查询数据库目录是否存在
int validate_directory(char *username, MYSQL *mysql, const char *dir_path);
// 拼接目录 path 和 cur_path
int join_path(MYSQL *mysql, my_stack *st, char *path, char *join_path);
// 将目录 token 压栈
int push_dire(char *username, MYSQL *mysql, my_stack *st, char *token);
// 处理目录 path 出入栈
int split_path(char *username, MYSQL *mysql, my_stack *st, char *path);
// 检查目录 path 是否合法
int check_path(char *username, MYSQL *mysql, my_stack *st, char *union_path);
// 处理 cd 命令
int handle_cd(char *username, MYSQL *mysql, my_stack *st, char *path, char *retpath);
// 处理 mkdir 命令 return 0 成功  1 目录已存在  -1 输入的目录不正确
int handle_mkdir(char *username, MYSQL *mysql, my_stack *st, char *path);
// 处理 rmdir 命令
int handle_rmdir(char *username, MYSQL *mysql, my_stack *st, char *path);


#endif
